/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.vse.po1715.piskorky.sit.hra;

import cz.vse.po1715.piskorky.sit.sit.Sit;
import java.io.*;
/**
 *
 * @author Zuzanka
 */
public class Hra_Test implements IHra {
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
    Sit sit;
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY ATRIBUTŮ TŘÍDY ==========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================
//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
    public Hra_Test() {
       sit = new Sit();
       sit.setHra(this);
    }
//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY INSTANCÍ ================================================
    @Override
    public void zpracujTah(int x, int y) {
         System.out.println("Tah od protihráče : x = " + x + ", y = " + y + ".");
    }
    @Override
    public void zpracujZpravu(String zprava){
         System.out.println("Zpráva od protihráče : " + zprava);
    }
    @Override
    public void odesliTah(int x, int y){
         sit.odesliTah(x, y);
    }
    @Override
    public void odesliZpravu(String zprava){
         sit.odesliZpravu(zprava);
    }

    @Override
    public void vypisZpravu(String zprava){
         System.out.println(zprava);
    }
    /***************************************************************************
         * Spustí test hry, který probíhá přes příkazovou řádku, aby testování bylo jednoduché.
         *
         *
         */

    public void startHra() {
        String radek = "";
        BufferedReader reader;
        BufferedWriter writer;
        
        reader = new BufferedReader(new InputStreamReader(System.in));
        writer = new BufferedWriter(new OutputStreamWriter(System.out));
        
        for(;;) {
            
            try {
                radek = reader.readLine();
              try { 
                    if (radek.equalsIgnoreCase("start server")) {
                        sit.spustServer();
                    }

                    if (radek.substring(0,3).equalsIgnoreCase("tah")) {
                        int x;
                        int y;
                        String[] tahy;
                        tahy = radek.substring(4).split(" ");

                        x = Integer.parseInt(tahy[0]);
                        y = Integer.parseInt(tahy[1]);

                        this.odesliTah(x, y);
                    }
                    
                    if (radek.substring(0,6).equalsIgnoreCase("zprava")) {
                        this.odesliZpravu(radek.substring(7).trim());
                    }
                    
                    if (radek.substring(0,6).equalsIgnoreCase("pripoj")) {
                        sit.pripojSeKServeru(radek.substring(7).trim());
                    }
                    
                    
                    
               } catch (Exception ex) {
               
               }
                
            }catch(IOException ioe) {
                throw new RuntimeException("\nChyba při čtení příkazu");
            }

          
        }
    }
    
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTOVACÍ METODY A TŘÍDY ==================================================
}
